package com.ruoyi.safe.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.safe.domain.vo.BizSafeFineVO;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.Max;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 项目自检-检查记录对象 biz_project_check_record
 *
 * @author ruoyi
 * @date 2023-11-20
 */
@EqualsAndHashCode(callSuper = true)
@Data
public class BizProjectCheckRecord extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 序号
     */
    private Long id;

    /**
     * 项目自检id
     */
    @Excel(name = "项目自检id")
    private Long projectCheckId;

    /**
     * 项目id
     */
    @Excel(name = "项目id")
    private Long projectId;

    /**
     * 项目名称
     */
    private String projectName;

    /**
     * 隐患状态
     */
    @Excel(name = "隐患状态")
    private String hiddenDangerStatus;

    /**
     * 记录类型
     * 1:隐患记录 对应 hidden_danger_status不为4的记录
     * 2:排查记录 对应 hidden_danger_status为4的记录
     */
    private String recordType;

    /**
     * 检查时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "检查时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date checkTime;

    /**
     * 检查人
     */
    @Excel(name = "检查人")
    private String checkPeople;

    /**
     * 检查人 nickName
     */
    @Excel(name = "检查人")
    private String checkPeopleNickName;

    /**
     * 检查人user_name
     */
    private String checkPeopleValue;

    /**
     * 检查人电话
     */
    private String checkPeoplePhone;

    /**
     * 整改期限
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "整改期限", width = 30, dateFormat = "yyyy-MM-dd")
    private Date reviseTheDates;

    /**
     * 整改人
     */
    @Excel(name = "整改人")
    private String revisePeople;

    /**
     * 整改人 nickName
     */
    @Excel(name = "整改人")
    private String revisePeopleNickName;
    /**
     * 整改人电话
     */
    private String revisePeoplePhone;

    /**
     * 原因
     */
    @Excel(name = "原因")
    private String reason;

    /**
     * 隐患内容
     */
    @Excel(name = "隐患内容")
    private String hiddenMessage;

    /**
     * 删除标志（0代表存在 2代表删除）
     */
    private String delFlag;

    /**
     * 责任区域
     */
    @Excel(name = "责任区域")
    private String dutyArea;

    /**
     * 责任区域集合
     */
    private List<String> dutyAreas;

    /**
     * 检查类型
     */
    @Excel(name = "检查类型")
    private String checkType;
    /**
     * 检查类型名称
     */
    @Excel(name = "检查类型")
    private String checkTypeName;

    /**
     * 分包单位
     */
    @Excel(name = "分包单位")
    private String subpackageUnit;

    /**
     * 分包单位名称
     */
    @Excel(name = "分包单位")
    private String subpackageUnitNames;
    /**
     * 安全隐患(风险因素)
     */
    @Excel(name = "安全隐患(风险因素)")
    private String riskFactor;

    /**
     * 隐患类别(风险因素)
     */
    @Excel(name = "隐患级别")
    private String riskLevel;

    /**
     * 隐患类别(风险因素)
     */
    @Excel(name = "隐患级别")
    private String riskLevelName;
    /**
     * 补充说明
     */
    @Excel(name = "补充说明")
    private String supplement;

    /**
     * 隐患类别
     */
    @Excel(name = "隐患类别")
    private String hiddenClass;

    /**
     * 隐患类别(清单类别)
     */
    @Excel(name = "隐患类别")
    private String hiddenClassName;
    /**
     * 事故隐患
     */
    @Excel(name = "事故隐患")
    private String accidentHidden;

    /**
     * 事故隐患名称
     */
    @Excel(name = "事故隐患")
    private String accidentHiddenName;

    /**
     * 通知人
     */
    @Excel(name = "通知人")
    private String notifier;

    /**
     * 通知人
     */
    @Excel(name = "通知人")
    private String notifierNickName;
    /**
     * 图片信息
     */
    private List<BizSafeAttach> attachList;

    /**
     * 检查记录id集合
     */
    private Long[] recordIds;

    /**
     * 整改要求
     */
    @Excel(name = "整改要求")
    private String reviseRequire;

    /**
     * 清单id
     */
    private Long listId;
    /**
     * 清单id集合
     */
    private List<Long> listIds;

    /**
     * 清单分类id
     */
    private String typeNo;

    /**
     * 超期整改
     */
    private String overdueRectification;

    /**
     * 超期复查
     */
    private String overdueReview;


    /**
     * 整改信息
     */
    private List<BizRectifyReview> rectifyReviews;

    /**
     * 复查人
     */
    private String reviewUserName;

    /**
     * 复查人 nikcName
     */
    private String reviewUserNickName;
    /**
     * 复查人电话
     */
    private String reviewUserPhone;

    /**
     * 复查时间
     */
    private Date reviewTime;

    /**
     * 延期记录
     */
    private List<BizExtensionRequests> bizExtensionRequests;

    /**
     * 罚款记录
     */
    private List<BizSafeFineVO> bizSafeFineVOList;

    private String time;

    /**
     * 检查记录id
     */
    private String RecordId;

    /**
     * 文件名
     */
    private String fileName;

    /**
     * 延期审批状态
     */
    private String extensionStatus;

    /**
     * 延期至时间
     */
    private Date extensionTime;

    /**
     * 是否罚款
     */
    private String isFine;

    /**
     * 罚款金额
     */
    @Max(value = 999999999999999999L, message = "罚款金额不能超过999999999999999999")
    private BigDecimal fineMoney;

    /**
     * 罚款原因
     */
    private String fineExplain;

    /**
     * 整改操作时间
     */
    private Date rectifyOperatorTime;

    /**
     * 复查操作时间
     */
    private Date reviewOperatorTime;

    /**
     * 人员类型
     */
    private String peopleType;

    /**
     * 检查来源
     */
    private String checkSource;
}
